package com.hdd.hll.common.config;

import com.google.common.collect.Maps;
import com.hdd.hll.common.utils.PropertiesLoader;
import com.hdd.hll.common.utils.StringUtils;
import org.springframework.beans.factory.annotation.Value;

import java.util.Map;


/**
 * 全局配置类
 */
public class Global {
	
	private Global() {}

	/**
	 * 当前对象实例
	 */
	private static Global global = null;
	
	
	@Value("${spring.profiles.active}")
	public static String active;
	

	/**
	 * 静态工厂方法 获取当前对象实例 多线程安全单例模式(使用双重同步锁)
	 */

	public static synchronized Global getInstance() {

		if (global == null) {
			synchronized (Global.class) {
				if (global == null) {
                    global = new Global();
                }
			}
		}
		return global;
	}

	/**
	 * 保存全局属性值
	 */
	private static Map<String, String> map = Maps.newHashMap();

	/**
	 * 属性文件加载对象
	 */
	private static PropertiesLoader loader = new PropertiesLoader("config/config.properties");

	/**
	 * 获取配置
	 */
	public static String getConfig(String key) {
		String value = map.get(key);
		if (value == null) {
			value = loader.getProperty(key);
			map.put(key, value != null ? value : StringUtils.EMPTY);
		}
		return value;
	}

}
